home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 60 / IOPROG_60.ISO / soft / c++ / gsl-1.1.1-setup.exe / {app} / src / cblas / test_sbmv.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-04-18  |  10.1 KB  |  396 lines

  1. #include <gsl/gsl_test.h>
  2. #include <gsl/gsl_ieee_utils.h>
  3. #include <gsl/gsl_math.h>
  4. #include <gsl/gsl_cblas.h>
  5.  
  6. #include "tests.h"
  7.  
  8. void
  9. test_sbmv (void) {
  10. const double flteps = 1e-4, dbleps = 1e-6;
  11.   {
  12.    int order = 101;
  13.    int uplo = 121;
  14.    float alpha = 1.0f;
  15.    float beta = 0.0f;
  16.    int N = 3;
  17.    int k = 1;
  18.    int lda = 3;
  19.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  20.    float X[] = { -0.542f, 0.606f, 0.727f };
  21.    int incX = -1;
  22.    float Y[] = { 0.755f, 0.268f, -0.99f };
  23.    int incY = -1;
  24.    float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
  25.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  26.    {
  27.      int i;
  28.      for (i = 0; i < 3; i++) {
  29.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1102)");
  30.      }
  31.    };
  32.   };
  33.  
  34.  
  35.   {
  36.    int order = 101;
  37.    int uplo = 121;
  38.    float alpha = 1.0f;
  39.    float beta = 0.0f;
  40.    int N = 3;
  41.    int k = 1;
  42.    int lda = 3;
  43.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  44.    float X[] = { -0.542f, 0.606f, 0.727f };
  45.    int incX = -1;
  46.    float Y[] = { 0.755f, 0.268f, -0.99f };
  47.    int incY = -1;
  48.    float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
  49.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  50.    {
  51.      int i;
  52.      for (i = 0; i < 3; i++) {
  53.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1103)");
  54.      }
  55.    };
  56.   };
  57.  
  58.  
  59.   {
  60.    int order = 101;
  61.    int uplo = 122;
  62.    float alpha = 1.0f;
  63.    float beta = 0.0f;
  64.    int N = 3;
  65.    int k = 1;
  66.    int lda = 3;
  67.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  68.    float X[] = { -0.542f, 0.606f, 0.727f };
  69.    int incX = -1;
  70.    float Y[] = { 0.755f, 0.268f, -0.99f };
  71.    int incY = -1;
  72.    float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
  73.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  74.    {
  75.      int i;
  76.      for (i = 0; i < 3; i++) {
  77.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1104)");
  78.      }
  79.    };
  80.   };
  81.  
  82.  
  83.   {
  84.    int order = 101;
  85.    int uplo = 122;
  86.    float alpha = 1.0f;
  87.    float beta = 0.0f;
  88.    int N = 3;
  89.    int k = 1;
  90.    int lda = 3;
  91.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  92.    float X[] = { -0.542f, 0.606f, 0.727f };
  93.    int incX = -1;
  94.    float Y[] = { 0.755f, 0.268f, -0.99f };
  95.    int incY = -1;
  96.    float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
  97.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  98.    {
  99.      int i;
  100.      for (i = 0; i < 3; i++) {
  101.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1105)");
  102.      }
  103.    };
  104.   };
  105.  
  106.  
  107.   {
  108.    int order = 102;
  109.    int uplo = 121;
  110.    float alpha = 1.0f;
  111.    float beta = 0.0f;
  112.    int N = 3;
  113.    int k = 1;
  114.    int lda = 3;
  115.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  116.    float X[] = { -0.542f, 0.606f, 0.727f };
  117.    int incX = -1;
  118.    float Y[] = { 0.755f, 0.268f, -0.99f };
  119.    int incY = -1;
  120.    float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
  121.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  122.    {
  123.      int i;
  124.      for (i = 0; i < 3; i++) {
  125.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1106)");
  126.      }
  127.    };
  128.   };
  129.  
  130.  
  131.   {
  132.    int order = 102;
  133.    int uplo = 121;
  134.    float alpha = 1.0f;
  135.    float beta = 0.0f;
  136.    int N = 3;
  137.    int k = 1;
  138.    int lda = 3;
  139.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  140.    float X[] = { -0.542f, 0.606f, 0.727f };
  141.    int incX = -1;
  142.    float Y[] = { 0.755f, 0.268f, -0.99f };
  143.    int incY = -1;
  144.    float y_expected[] = { 0.187592f, -0.01232f, -0.040176f };
  145.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  146.    {
  147.      int i;
  148.      for (i = 0; i < 3; i++) {
  149.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1107)");
  150.      }
  151.    };
  152.   };
  153.  
  154.  
  155.   {
  156.    int order = 102;
  157.    int uplo = 122;
  158.    float alpha = 1.0f;
  159.    float beta = 0.0f;
  160.    int N = 3;
  161.    int k = 1;
  162.    int lda = 3;
  163.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  164.    float X[] = { -0.542f, 0.606f, 0.727f };
  165.    int incX = -1;
  166.    float Y[] = { 0.755f, 0.268f, -0.99f };
  167.    int incY = -1;
  168.    float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
  169.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  170.    {
  171.      int i;
  172.      for (i = 0; i < 3; i++) {
  173.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1108)");
  174.      }
  175.    };
  176.   };
  177.  
  178.  
  179.   {
  180.    int order = 102;
  181.    int uplo = 122;
  182.    float alpha = 1.0f;
  183.    float beta = 0.0f;
  184.    int N = 3;
  185.    int k = 1;
  186.    int lda = 3;
  187.    float A[] = { 0.627f, -0.312f, 0.031f, 0.308f, 0.323f, -0.578f, 0.797f, 0.545f, -0.476f };
  188.    float X[] = { -0.542f, 0.606f, 0.727f };
  189.    int incX = -1;
  190.    float Y[] = { 0.755f, 0.268f, -0.99f };
  191.    int incY = -1;
  192.    float y_expected[] = { -0.236236f, -0.215242f, 0.266757f };
  193.    cblas_ssbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  194.    {
  195.      int i;
  196.      for (i = 0; i < 3; i++) {
  197.        gsl_test_rel(Y[i], y_expected[i], flteps, "ssbmv(case 1109)");
  198.      }
  199.    };
  200.   };
  201.  
  202.  
  203.   {
  204.    int order = 101;
  205.    int uplo = 121;
  206.    double alpha = 0;
  207.    double beta = 1;
  208.    int N = 3;
  209.    int k = 1;
  210.    int lda = 3;
  211.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  212.    double X[] = { 0.166, 0.808, 0.723 };
  213.    int incX = -1;
  214.    double Y[] = { 0.9, 0.99, -0.578 };
  215.    int incY = -1;
  216.    double y_expected[] = { 0.9, 0.99, -0.578 };
  217.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  218.    {
  219.      int i;
  220.      for (i = 0; i < 3; i++) {
  221.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1110)");
  222.      }
  223.    };
  224.   };
  225.  
  226.  
  227.   {
  228.    int order = 101;
  229.    int uplo = 121;
  230.    double alpha = 0;
  231.    double beta = 1;
  232.    int N = 3;
  233.    int k = 1;
  234.    int lda = 3;
  235.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  236.    double X[] = { 0.166, 0.808, 0.723 };
  237.    int incX = -1;
  238.    double Y[] = { 0.9, 0.99, -0.578 };
  239.    int incY = -1;
  240.    double y_expected[] = { 0.9, 0.99, -0.578 };
  241.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  242.    {
  243.      int i;
  244.      for (i = 0; i < 3; i++) {
  245.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1111)");
  246.      }
  247.    };
  248.   };
  249.  
  250.  
  251.   {
  252.    int order = 101;
  253.    int uplo = 122;
  254.    double alpha = 0;
  255.    double beta = 1;
  256.    int N = 3;
  257.    int k = 1;
  258.    int lda = 3;
  259.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  260.    double X[] = { 0.166, 0.808, 0.723 };
  261.    int incX = -1;
  262.    double Y[] = { 0.9, 0.99, -0.578 };
  263.    int incY = -1;
  264.    double y_expected[] = { 0.9, 0.99, -0.578 };
  265.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  266.    {
  267.      int i;
  268.      for (i = 0; i < 3; i++) {
  269.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1112)");
  270.      }
  271.    };
  272.   };
  273.  
  274.  
  275.   {
  276.    int order = 101;
  277.    int uplo = 122;
  278.    double alpha = 0;
  279.    double beta = 1;
  280.    int N = 3;
  281.    int k = 1;
  282.    int lda = 3;
  283.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  284.    double X[] = { 0.166, 0.808, 0.723 };
  285.    int incX = -1;
  286.    double Y[] = { 0.9, 0.99, -0.578 };
  287.    int incY = -1;
  288.    double y_expected[] = { 0.9, 0.99, -0.578 };
  289.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  290.    {
  291.      int i;
  292.      for (i = 0; i < 3; i++) {
  293.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1113)");
  294.      }
  295.    };
  296.   };
  297.  
  298.  
  299.   {
  300.    int order = 102;
  301.    int uplo = 121;
  302.    double alpha = 0;
  303.    double beta = 1;
  304.    int N = 3;
  305.    int k = 1;
  306.    int lda = 3;
  307.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  308.    double X[] = { 0.166, 0.808, 0.723 };
  309.    int incX = -1;
  310.    double Y[] = { 0.9, 0.99, -0.578 };
  311.    int incY = -1;
  312.    double y_expected[] = { 0.9, 0.99, -0.578 };
  313.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  314.    {
  315.      int i;
  316.      for (i = 0; i < 3; i++) {
  317.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1114)");
  318.      }
  319.    };
  320.   };
  321.  
  322.  
  323.   {
  324.    int order = 102;
  325.    int uplo = 121;
  326.    double alpha = 0;
  327.    double beta = 1;
  328.    int N = 3;
  329.    int k = 1;
  330.    int lda = 3;
  331.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  332.    double X[] = { 0.166, 0.808, 0.723 };
  333.    int incX = -1;
  334.    double Y[] = { 0.9, 0.99, -0.578 };
  335.    int incY = -1;
  336.    double y_expected[] = { 0.9, 0.99, -0.578 };
  337.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  338.    {
  339.      int i;
  340.      for (i = 0; i < 3; i++) {
  341.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1115)");
  342.      }
  343.    };
  344.   };
  345.  
  346.  
  347.   {
  348.    int order = 102;
  349.    int uplo = 122;
  350.    double alpha = 0;
  351.    double beta = 1;
  352.    int N = 3;
  353.    int k = 1;
  354.    int lda = 3;
  355.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  356.    double X[] = { 0.166, 0.808, 0.723 };
  357.    int incX = -1;
  358.    double Y[] = { 0.9, 0.99, -0.578 };
  359.    int incY = -1;
  360.    double y_expected[] = { 0.9, 0.99, -0.578 };
  361.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  362.    {
  363.      int i;
  364.      for (i = 0; i < 3; i++) {
  365.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1116)");
  366.      }
  367.    };
  368.   };
  369.  
  370.  
  371.   {
  372.    int order = 102;
  373.    int uplo = 122;
  374.    double alpha = 0;
  375.    double beta = 1;
  376.    int N = 3;
  377.    int k = 1;
  378.    int lda = 3;
  379.    double A[] = { 0.83, -0.568, -0.888, 0.281, -0.779, -0.148, 0.138, 0.053, -0.757 };
  380.    double X[] = { 0.166, 0.808, 0.723 };
  381.    int incX = -1;
  382.    double Y[] = { 0.9, 0.99, -0.578 };
  383.    int incY = -1;
  384.    double y_expected[] = { 0.9, 0.99, -0.578 };
  385.    cblas_dsbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
  386.    {
  387.      int i;
  388.      for (i = 0; i < 3; i++) {
  389.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dsbmv(case 1117)");
  390.      }
  391.    };
  392.   };
  393.  
  394.  
  395. }
  396.